home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 November
/
EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso
/
earcd
/
util
/
misc
/
zxam16b.lha
/
ZXAM Spectrum
/
LEEME!!
< prev
next >
Wrap
Text File
|
1995-01-18
|
15KB
|
267 lines
Readme del ZXAM Spectrum Emulator v1.6b
---------------------------------------
Lo que tienes delante es un emulador del entrañable Sinclair ZX Spectrum
48k. Necesita chips AGA, WB 3.0+ y 68020+ (WB 2.04+, 68020+ y cualquier tipo de
chips en la versión OCS/ECS). Lee el ZXAM_Spectrum.DOCesp para información más
detallada.
Este programa es SHAREWARE. Esto sigifica que tienes un mes de tiempo para
probarlo, y si te gusta deberás mandar 15 US$ (unas 2000 pts) al autor. A
cambio recibirás la última versión (probablemente la versión 128k). Esta
versión SHAREWARE puede circular libremente siempre que se incluyan todos los
ficheros asociados al programa. Está prohibido utilizar el programa para fines
comerciales, o sea que solo se pueden cargar los gastos normales de copia y
envio que se cargan habitualmente en las librerias de Dominio Público. También
puedes meterlo en BBS o incluirlo en discos de revista.
Para contactar con el autor:
Correo normal:
Antonio J. Pomar Rosselló
C/ Alférez Cerdá nº 13-bajos
Palma de Mallorca 07014
Baleares (España)
BBS:
Déjame el mensaje a nombre de TONIACE en TANIT BBS-IBIZA (971-392829)
FidoNet:
Toni Pomar (2:343/119.80)
AmigaNet:
Toni Pomar (39:190/1.80)
InterNet:
tpomar@penedes.mazanet.encomix.com
A partir de este punto el texto contiene una serie de añadidos que se han
ido acumulando a partir de la versión 1.3 ß del emulador. Es como una especie
de Historia del desarrollo del emulador pero referente a las versiones
distribuidas y que explica el 'por que' de algunas cosas.
>>>>>>>>>>>>>>> AÑADIDO PARA VERSION 1.3 ß <<<<<<<<<<<<<<<<<<
UNA DE INDIOS...
Mis duras investigaciones me han llevado a conseguir un gran logro nunca
alcanzado en la historia de la informática, que es: Poder almacenar y recuperar
datos binarios ¡en simples cintas de audio! (del standard "compact cassette").
A esta nueva tecnologia de almacenamiento la llamo "slow-ish
semi-retrievable audio FSK data stream", que se traduce como "chorro
lentorrillo semirrecuperable y audible de datos transformados en pitidos y
chirridos". Para hacer este avance tecnológico accesible al grán público he
decidido distribuir la versión 1.3 ß del emulador de Spectrum con esta
posibilidad incorporada. Nunca más te verás forzado a usar los ultrarápidos
discos duros (puaj!) o las rápidas disqueteras (aarg!). Ahora ya puedes
cargar un juego de forma que te dé tiempo de ir al baño mientras se carga,
o leer el Quijote, o, simplemente, envejecer decrépitamente ante la pantalla.
Como todos los grandes descubrimientos de la humanidad, estoy seguro de que
alguien hará un uso incorrecto de mi descubrimiento (como ya lo
intentaron con mi consola WOPR, alias "Joshua", compatible con NES), pero
apelo al poco de conciencia que te queda para que desistas de hacerlo. Ten en
cuenta que la tecnologia que tienes en tus manos puede decidir el destino del
mundo (como la WOPR :-)....
VA DE VERAS
El motivo principal para la circulación de esta versión es (como explico
arriba ;-) la incorporación de la posibilidad de LOAD y SAVE a cinta. Aunque
estas opciones funcionan bién, esta versión del emulador ha sido distribuida
por la demanda popular de la carga desde cinta, pero no es una versión
definitiva debido a que el emulador contiene además unos ensayos de
estabilización de velocidad para ordenadores sobrados de potencia (que no es mi
caso!). En cuanto la tenga lista haré circular una versión mucho más definitiva
con un sistema de estabilización de velocidad mucho más preciso que el que
incluye la versión 1.3 ß. Los aspectos modificados respecto a la versión 1.2 ß
son:
LOAD DE CINTA: ¿Significa esto que puedo pasar a disco mi colección de juegos?
Pues... solo si usa la rutina de carga de la ROM, o sea, ni Turbos ni programas
con cargadores extraños (como el Commando, el Deflektor, etc..). La rutina de
carga que incorpora el emulador es un hábil "parchecillo" de la rutina de
carga de la ROM, a la que no substituye totalmente si no solo en sus
secciones más críticas. Un 90% del código que se ejecuta al cargar de cinta
es el original de la ROM del Spectrum. Debido a esto, se comporta como si de
un Spectrum se tratara, o sea, puedes hacer BREAK con el espacio y verás como
cargan los pixels de las pantallas y los atributos (que hacian ese MEEEEEC
tan característico [snif...] ). El FLASH sigue funcionando durante la carga,
también. Y todo esto funciona perfectamente incluso en un A1200 sin FAST y en
modo COLOR!!.
Las LIMITACIONES del parche son:
-Las rayas del borde no son perfectas, pero casi, debido a interferencias
entre la CPU y la copperlist. Sería posible hacerlo perfecto, pero
supondria más trabajo para la CPU, que ya está en sus límites, y, en
consecuencia, ralentizaria ligeramente el emulador. Creo que para ver
mejor la rayitas de carga no vale la pena ralentizar el emulador.
-El sonido de la cinta solo se oye DURANTE LA CARGA, no al buscar la
cabecera del programa. Esto significa que tendrás que buscar el
principio del programa desconectando el cassette del ordenador, para
conectarlo cuando hayas encontrado la cabecera. Emular desde software el
puente que tenia el Hardware del Spectrum entre las tomas MIC y EAR es
demasiado desperdicio de potencia para algo que solo vas a usar cuando
cargues desde cinta. Piensa que, aunque el emulador puede cargar y
grabar con cinta AUN puede cargar/grabar programas en disco...
-NECESITA INTERFACE PROPIO: Aunque yo no considero que ésto sea una
limitación, ya que el interface que he diseñado es MUCHO más barato y
práctico que un sampleador. Este interface se conecta al puerto del
Joystick, y se puede poner y quitar con el ordenador en marcha. Junto
con el emulador encontrarás una pantalla que describe el interface. Los
2 (si DOS!) componentes del interface están ahí simplemente para que el
ordenador no se estropee si le subes demasiado el volumen al cassette.
Como verás, el interface es tan simple que "da asco verlo". Lo he
diseñado así por que se supone que no lo usarás constantemente, pero
si quieres tenerlo conectado siempre puedes ponerle una conexión de paso
(un macho DB-9) a la salida para tener al mismo tiempo el cassette y el
joystick conectados. Además, con este interface puedes dejar la
impresora permanentemente conectada, no como con el sampler.
-Al ser un parche de la rutina de la ROM, solo cargarán programas que
usen dicha rutina. O sea, olvidate de los Turbos (de momento...;-).
-En sistemas de "potencia moderada" (como el mio) no conviene toquetear
mucho el teclado mientras cargas, a menos que quieras hacer BREAK, por
que cada pulsación de tecla produce una interrupción, que desestabiliza
la carga y puede provocar errores.
LLegados a este punto debo confesar que la fiabilidad del parche es mucho
mayor de lo que yo tenia previsto en un principio. Durante las pruebas, conecté
la entrada de audio del emulador al cassette incorporado en mi Spectrum +2A, e
intentaba cargar al mismo tiempo el mismo programa en el +2A y en el 1200. Mi
intención era encontrar algún programa que el +2A cargara pero el 1200 no, para
ajustar las temporizaciones del parche. Mi sorpresa fué mayúscula al comprobar
que el que no cargaba correctamente todos los programas era el +2A, mientras
que el 1200 se tragaba perfectamente lo que le echaran. ¡Es de las pocas veces
que pruebo algo nuevo y funciona a la primera!. En total he pasado 83 programas
a disco durante las pruebas (algunos de éstos no habian querido cargar con el
Spectrum Emulator v1.7 ;-)
SAVE HACIA CINTA: Bueno... este ha sido muy fácil. Ni siquiera es un parche, ya
que es el código Z80 de la ROM la que lo hace todo. Lo unico que yo he hecho ha
sido "frenar" la rutina Z80 para que no corriera demasiado. Lo mismo que se
especifica en LOAD respecto al teclado y al borde se puede aplicar al SAVE. Los
datos grabados por el emulador han sido cargados sin problemas por el propio
emulador y por mi ZX Spectrum +2A.
SONIDO: El emulador incorpora un estabilizador "experimental" de sonido. Con
este estabilizador ha sido posible el SAVE en tiempo real (puro Z80), aparte de
que el BEEP es ahora también tiempo real, y la música de muchos juegos ha
mejorado muchísimo (como los de ULTIMATE). Sin embargo, otros juegos han
empeorado un poco (como el 3 Weeks in Paradise), o se han ralentizado
ligeramente (un 3% aprox). De todas formas, este "estabilizador" no es más que
experimental. Espero poner a punto uno mucho más preciso.
>>>>>>>>>>>>>>> AÑADIDO PARA VERSION 1.3b ß <<<<<<<<<<<<<<<<<<
Esta versión era en realidad el principio de la 1.4 ß, pero recibí una
carta-disco de un usuario pidiéndome la última versión (solo habia visto la
horrible versión 1.2 ß en la party de Cádiz, ¡¡Y yo voy y me la pierdo!!). Por
esta razón decidí coger el emulador tal y como estaba y montarlo en el paquete
de distribución (¡no podia mandarle la versión 1.3 ß por que no era la mejor!).
Para los que tengan la versión 1.3 ß esta versión es una pequeña mejora en la
velocidad de algunos juegos, además de incluir un transfer para pasar a cinta
los juegos que tienes en disco y poder cargarlos así en un Spectrum real. Para
los que tengan la versión 1.2 ß, les aconsejo que la borren AHORA y la
substituyan por la 1.3b ß (¡ESTA!).
En el periodo del 1-Agosto-94 al 20-Agosto-94 no he modificado el emulador
por que en ese periodo he estado "enganchado" a un modem que me habia dejado un
amigo, y no he tocado el emulador para nada. Dentro de poco tendré mi propio
modem y daré caña por la FidoNET.
>>>>>>>>>>>>>>> AÑADIDO PARA VERSION 1.4 ß <<<<<<<<<<<<<<<<<<
(Esta versión no ha sido distribuida)
>>>>>>>>>>>>>>> AÑADIDO PARA VERSION 1.5 <<<<<<<<<<<<<<<<<<
Esta es la primera versión que ha dejado de ser ß. Esto supone que es
razonablemente estable (a mi no se me cuelga desde hace meses, y eso que le
hago todas las perrerias que puedo :-), que la emulación es (aunque no
perfecta) más o menos completa y que la ventana de interface es totalmente
operativa, o sea que todo lo que sale en la ventana sirve para algo coherente.
Esto no significa que deje de desarrollar el emulador. Seguiré mejorando el
interface y la emulación (NO TE QUEPA DUDA!!).
Esta versión no incorpora ninguna mejora en la emulación (estoy pendiente de
conseguir la memoria FAST para las pruebas de tiempo real) pero sí en el uso
del programa. Tiene un puerto ARexx con 44 funciones que permiten hacer
cualquier cosa, como grabar la pantalla en IFF, ensamblar/desensamblar código
Z80 sobre la memoria del Spectrum, convertir el formato de grupos de ficheros
o sacar los listados BASIC de la memoria del spectrum. En una versión futura
tengo previsto añadir la posibilidad de ejecutar código Z80 paso a paso. Los
scripts ARexx se arrancan desde la ventana de control mediante un requester de
ficheros.
Además ya puede comprimir los programas con powerpacker en el momento de
grabarlos a disco, puede seleccionar dos paths separados (uno para carga y otro
para grabación), el requester de ficheros de adapta a la altura de la pantalla,
la ventana del emulador es una appwindow, el emulador admite la carga de ROMs
externas (añadido en la versión 1.4 ß) y permite ejecutar comandos antes y
después de la emulación (ideal para activar/desactivar los cachés del
procesador).
Si quieres ensamblar código Z80 sobre la memoria del Spectrum solo debes
hacer el script ARexx adecuado y usar un ensamblador cruzado de Z80 (como el
CAZ de Carsten Rose, que está en el CD-ROM FrozenFISH).
Además he incluido con el paquete una versión OCS/ECS del emulador. Es una
versión de prueba pero creo que funciona bién. En caso de problemas,
comunícamelo para que pueda arreglarlos.
>>>>>>>>>>>>>>> AÑADIDO PARA VERSION 1.6 <<<<<<<<<<<<<<<<<<
Esta versión es la primera SHAREWARE. Esto es debido a la burrada de tiempo
que me absorbe el emulador, y a los gastos que me supone distribuir
adecuadamente éste para que llegue a los usuarios, y conseguir información para
el desarrollo del emulador. Con esta contribución estás asegurando el
desarrollo y mejora posterior del emulador.
Esta nueva versión (1.6) añade un comando ARexx para desensamblar
instrucciones Z80 de la memoria del spectrum, puede desviar los comandos
LOAD/SAVE de la ROM del spectrum hacia disco (ideal para juegos multicarga),
admite la carga de programas en formato Z80 (tanto el formato antiguo como el
moderno), se pueden arrancar juegos desde el icono de estos (poniendo el
emulador como Default Tool), arregla unos pocos problemas (como el del teclado
con el Profanation) y es más legal con el sistema.
También incluye un script ARexx para desensamblar porciones de memoria y
otro para descomponer ficheros .TAP.
Esta es, probablemente, la última versión solo 48k. En el momento de
escribir esto, ya tengo una pre-versión del emulador con el +3BASIC
funcionando... ;-)
>>>>>>>>>>>>>>> AÑADIDO PARA VERSION 1.6b <<<<<<<<<<<<<<<<<<
Versión creada tras descubrir un error en la carga de algunos programas en
formato Z80 (un bug! esto no puede ser!!). Para justificar una nueva versión le
he añadido además 10 comandos ARexx nuevos (entre ellos el ZXAMTrace() que
permite ejecutar instrucciones paso-a-paso, y el ZXAMBreakPoint() con la que
puedes poner puntos de ruptura en los programas), puede cargar programas en
formato KGB y arregla el problema del Sabre Wulf con el rinoceronte. Con el
emulador se incluye un script ARexx (Monitor.zxam, creado por Leonardo Cocaña
Galán) que muestra algunas de las posibilidades del puerto ARexx para crear
desensambladores/monitores.
Para sacar esta versión he interrumpido el desarrollo de la versión 128k,
pero vuelvo a estar en ello...